class UsersController < ApplicationController   
  # GET /users
  # GET /users.json
  def index
    @users = User.all

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @users }
    end
  end

  # GET /users/1
  # GET /users/1.json
  def show
    @user = User.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @user }
    end
  end

  # GET /users/new
  # GET /users/new.json
  def new
    @user = User.new

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @user }
    end
  end

  def edit
    @user = userContext.user
    #@user = User.find(params[:id])
  end

  # POST /users
  # POST /users.json
  def create
    @user = User.new(params[:user])

    respond_to do |format|
      if @user.save
        format.html { redirect_to @user, notice: 'User was successfully created.' }
        format.json { render json: @user, status: :created, location: @user }
        UserMailer.welcome_email(@user).deliver
      else
        format.html { render action: "new" }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
    end
  end

  # PUT /users/1
  # PUT /users/1.json
  def update
    @user = User.find(params[:id])

    respond_to do |format|
      if @user.update_attributes(params[:user])
        format.html { redirect_to @user, notice: 'User was successfully updated.' }
        format.json { head :no_content }
      else
        format.html { render action: "edit" }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
    end
  end

  # DELETE /users/1
  # DELETE /users/1.json
  def destroy
    @user = User.find(params[:id])
    @user.destroy

    respond_to do |format|
      format.html { redirect_to users_url }
      format.json { head :no_content }
    end
  end
  
  def login
    if signed_in?
      redirect_to :action => "index"
    else
      respond_to do |format|
        format.html # login.html.erb
      end  
    end    
  end
  
  def logout
    reset_session
    redirect_to :action => 'login'
  end
  
  # POST /users
  def authenticate
    user = User.authenticate(params[:email], params[:password])
    if user
      user_context = UserContext.new
      user_context.user = user
      userrole = UserRole.where(:user_id => user.id,:role => 1).first
      if(!userrole.nil?)
         merchant = Merchant.where(:user_id => user.id).first
         user_context.merchant = merchant
      else
        user_context.merchant = nil
      end
      session['user_context'] = user_context
      if is_merchant_user
        redirect_to :action => 'dashboard', :controller => 'merchants'
      else
        redirect_to :action => 'index', :controller => 'merchants'
      end
    else
      flash.now.alert = "Invalid email or password"
      render "new"
    end
  end
  
  def profile
    @user = userContext.user                   
  end    
  
  
  def choose_division    
    @divisions = Division.all
    #@divisions = {"1"=>"ahmedabad", "2"=>"mumbai", "3"=>"pune"}           
  end  
  
  def select_division    
    session["division"] = params[:id]
    cookies["division"] = {
       :value => params[:id],
       :expires => 1.year.from_now,       
    } 
    redirect_to :action => 'index', :controller => 'merchants', :status => 303                      
  end
  
end
